﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MaquinaJMG.GUI.Contrato;
using Datos.Entidades;
using MaquinaJMG.GUI.Contrato;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;

namespace MaquinaJMG.GUI.Presentador
{
    public class PrsentadorConfigurarMaquina
    {
        private List<Entidad> listaMaquina;
        private IContratoConfigurarMaquina _maquina;
             // <summary>
        /// presentador para hacer llamada a las interfaces de configurarMaquina
        /// </summary>

        public PrsentadorConfigurarMaquina(IContratoConfigurarMaquina maquina)
        {
            _maquina = maquina;
        }

        public void ConsultarEstatus()
        {
            Comando comando = FabricaComandoMaquina.CrearComandoListarTodasMaquinas();
            comando.Ejecutar();
            listaMaquina = comando.ListaEntidad;
            _maquina.estatus.Items.Add("Desactivada");
            _maquina.estatus.Items.Add("Activa");
            if (listaMaquina.Count != 0)
            {
                if ((listaMaquina.ElementAt(0) as Maquina).Estatus1 == 1)
                    _maquina.estatus.SelectedIndex = 1;
                else
                    _maquina.estatus.SelectedIndex = 0;
                _maquina.id.Text = ((listaMaquina.ElementAt(0) as Maquina).IdMaquina).ToString();
                _maquina.id.Enabled = false;
            }
            else 
            {
                _maquina.estatus.SelectedIndex = 0;
                _maquina.cancelar.Enabled = false;
            }
        }

        public void estadobotones() 
        {
            if (_maquina.id.Text != "0" || _maquina.id.Text != "")
                _maquina.aceptar.Enabled = true;
            else
                _maquina.aceptar.Enabled = false;
        }
        public void ActulizarMaquina() 
        { 
             Comando comando = FabricaComandoMaquina.CrearComandoListarTodasMaquinas();
            comando.Ejecutar();
            listaMaquina = comando.ListaEntidad;
            Entidad miMaquina = FabricaEntidades.ObtenerMaquina();
            (miMaquina as Maquina).IdMaquina = int.Parse(_maquina.id.Text);
            (miMaquina as Maquina).Estatus1 = _maquina.estatus.SelectedIndex;
                
            if (listaMaquina.Count == 0 && (miMaquina as Maquina).IdMaquina>0)
            {
                Comando comandoInsertar = FabricaComandoMaquina.CrearComandoCrearMaquina(miMaquina);
                comandoInsertar.Ejecutar();
            }
            else 
            {
                Comando comandoModificar = FabricaComandoMaquina.CrearComandoModificarMaquina(miMaquina);
                comandoModificar.Ejecutar();

            }
        }

    }
}
